<template>
    <div>
        <el-table :data="tableData" border style="width: 70%">
            <el-table-column fixed prop="id" label="编号" width="150"></el-table-column>
            <el-table-column prop="name" label="图书名" width="120"></el-table-column>
            <el-table-column prop="author" label="作者" width="120"></el-table-column>
            <el-table-column prop="publish" label="出版社" width="120"></el-table-column>
            <el-table-column prop="pages" label="页数" width="120"></el-table-column>
            <el-table-column prop="price" label="价格" width="120"></el-table-column>
            <el-table-column label="操作" width="100">
                <template slot-scope="scope">
                    <el-button @click="edit(scope.row)" type="text" size="small">修改</el-button>
                    <el-button @click="deleteBook(scope.row)" type="text" size="small">删除</el-button>
                </template>
            </el-table-column>
        </el-table>

        <el-pagination
                background
                layout="prev, pager, next"
                :page-size="pageSize"
                :total="total"
                @current-change="page">
        </el-pagination>
    </div>
</template>

<script>
    export default {
        methods: {
            deleteBook(row){
                const _this = this
                axios.delete('http://localhost:9001/book/deleteById/'+row.id).then(function(resp){
                    _this.$alert('《'+row.name+'》删除成功！', '消息', {
                        confirmButtonText: '确定',
                        callback: action => {
//                          动态刷新
                            window.location.reload()
                        }
                    })
                })
            },
            edit(row) {
                this.$router.push({
                    path: '/update',
                    query:{
                        id:row.id
                    }
                })
            },
            page(currentPage){
                const _this = this
                axios.get('http://localhost:9001/book/selectByPage/'+currentPage+'/100').then(function(resp){
                    console.log(resp)
                    _this.tableData = resp.data
                    _this.pageSize = resp.data.size
                    _this.total = resp.data.total
                })
            }
        },

        data() {
            return {
                pageSize:1,
                total:11,
                tableData: null
            }
        },

        created() {
            const _this = this
            axios.get('http://localhost:9001/book/selectByPage/1/100').then(function(resp){
                console.log(resp)
                _this.tableData = resp.data
                _this.pageSize = resp.data.size
                _this.total = resp.data.total
            })
        }
    }
</script>
